Subject: DLSw version 0.16 Table of Contents, Sections 1 & 2

From: "Alan K. Bartky, Manager of Technology" <[email-masked]>
Date: Thu, 22 Dec 94 10:24: 8 PST

----------
X-Sun-Data-Type: text
X-Sun-Data-Description: text
X-Sun-Data-Name: text
X-Sun-Content-Lines: 1
X-Sun-Content-Length: 30

This is overall part 1 of 12

----------
X-Sun-Data-Type: default
X-Sun-Data-Description: default
X-Sun-Data-Name: dlsw12.txt
X-Sun-Content-Lines: 435
X-Sun-Content-Length: 18568

RFC XXXX      DLSw: Switch-to-Switch Protocol  December 1994

Network Working Group                         Alan K. Bartky
Request for Comments: XXXX                Sync Research Inc.
Obsoletes: RFC 1434                                   Editor

                                               December 1994
       Data Link Switching: Switch-to-Switch Protocol
         EDITOR'S IN PROGRESS VERSION REVISION 0.16
                          12/22/94

THIS IS AN IN PROGRESS DOCUMENT AND DOES NOT NECESSARILY REPRESENT
CONSENSUS AGREEMENT AND IS FOR DISCUSSION AND REVIEW PURPOSES ONLY!!

   THIS VERSION IS FOR PROPOSED CP STATUS.  IF APPROVED, THEN ALL REVISION
   BARS, AND EDITORIAL COMMENTS WILL BE REMOVED.  VERSION NUMBER IF
   APPROVED WILL BE VERSION 1.0.

   REVISION BARS (IN THE POSTSCRIPT VERSION ONLY) SHOW THE DIFFERENCE
   (WHEREVER POSSIBLE) BETWEEN VERSION 0.15 AND VERSION 0.16.  REVISION
   HISTORY HAS NOW ALSO BEEN REMOVED.

   HAPPY READING

        - ALAN (your editor)

Status of this Memo

   This memo provides information for the Internet community.  It does not
   specify an Internet standard.  Distribution of this memo is unlimited.

Abstract

   This RFC describes use of Data Link Switching over TCP/IP. The RFC is
   being distributed to members of the Internet community in order to
   solicit their reactions to the proposals contained in it.  While the
   issues discussed may not be directly relevant to the research problems
   of the Internet, they may be interesting to a number of researchers and
   Implementers.

   This RFC was created as a joint effort of the Advanced Peer-to-Peer
   Networking (APPN) Implementers Workshop (AIW) Data Link Switching (DLSw)
   Related Interest Group (RIG).  The APPN Implementers Workshop is a group
   sponsored by IBM and consists of representatives of member companies
   implementing current and future IBM Networking interoperable products.
   The DLSw Related Interest Group was formed in this forum in order to
   produce a single version of the Switch to Switch Protocol (SSP) which
   could be implemented by all vendors, which would fix documentation
   problems with the existing RFC 1434, and which would enhance and evolve
   the protocol to add new functions and features.

   This document is based on RFC 1434.  This document contains significant
   changes to RFC 1434 and therefore obsoletes that document.

   Any questions or comments relative to the contents of this RFC should be
   sent to the following Internet address:

AIW DLSw Related Interest Group           DLSw version 0.16 [Page 1]

RFC XXXX      DLSw: Switch-to-Switch Protocol  December 1994

     [email-masked].

   NOTE 1:  This is a widely subscribed mailing list and messages sent to
   this address will be sent to all members of the DLSw mailing list.  For
   specific questions relating to subscribing to the AIW and any of it's
   working groups send email to:
     [email-masked]
   Information regarding all of the AIW working groups and the work they
   are producing can be obtained by copying, via anonymous ftp, the file
   aiwinfo from the Internet host networking.raleigh.ibm.com, located in
   directory aiw.

   NOTE 2:  These mailing lists and addresses are subject to change.

AIW DLSw Related Interest Group           DLSw version 0.16 [Page 2]

RFC XXXX      DLSw: Switch-to-Switch Protocol  December 1994

Table of Contents

Table of Contents........................................3
1. Introduction..........................................5
     1.1. Backwards Compatibility with RFC 1434..........5
2. Overview..............................................5
3. Transport Connection..................................8
     3.1. SSP Frame Formats..............................9
     3.2. Address Parameters.............................13
     3.3. Correlators....................................15
     3.4. Largest Frame Size Field.......................17
     3.5. Message Types..................................19
4. Circuit Priority......................................21
     4.1. Frame format...................................21
     4.2. Circuit Startup................................21
5. DLSw State Machine....................................23
     5.1. Data Link Switch States........................23
     5.2. State Transition Tables........................26
          5.2.1. DISCONNECTED State......................29
          5.2.2. RESOLVE_PENDING State...................30
          5.2.3. CIRCUIT_START State.....................31
          5.2.4. CIRCUIT_PENDING State...................32
          5.2.5. CONNECT_PENDING State...................33
          5.2.6. CIRCUIT_ESTABLISHED State...............34
          5.2.7. CONTACT_PENDING State...................35
          5.2.8. CONNECTED State.........................36
          5.2.9. CIRCUIT_RESTART State...................37
          5.2.10. DISCONNECT_PENDING State...............38
          5.2.11. RESTART_PENDING State..................38
          5.2.12. HALT_PENDING State.....................39
          5.2.13. HALT_PENDING_NOACK State...............39
     5.3. NetBIOS Datagrams..............................40
     5.4. Explorer Traffic...............................41
          5.4.1. CANUREACH/ICANREACH Explorer FSM........42
               5.4.1.1. RESET State......................42
               5.4.1.2. SENT_EX State....................43
               5.4.1.3. RECEIVED_EX State................43
          5.4.2. NETBIOS_NQ/NR Explorer FSM..............44
               5.4.2.1. RESET State......................44
               5.4.2.2. SENT_EX State....................45
               5.4.2.3. RECEIVED_EX State................46
               5.4.2.4. SENT_REC_EX State................46
               5.4.2.5. NetBIOS Session Numbers..........47
6. Protocol Flow Diagrams................................48
     6.1. Connect Protocols..............................48
     6.2. Link Restart Protocols.........................60
     6.3. Disconnect Protocols...........................61
7. Capabilities Exchange Formats/Protocol................62
     7.1. Control Vector Id Range........................63
     7.2. Control Vector Order and Continuity............63
     7.3. Run-Time Capabilities Exchange.................64
     7.4. Capabilities Exchange Filtering Responsibilities64
     7.5. DLSw Capabilities Exchange Structured Subfields65

AIW DLSw Related Interest Group           DLSw version 0.16 [Page 3]

RFC XXXX      DLSw: Switch-to-Switch Protocol  December 1994

          7.5.1. Vendor Id (0x81) Control Vector.........65
          7.5.2. DLSw Version (0x82) Control Vector......66
          7.5.3. Initial Pacing Window (0x83) Control Vector     66
          7.5.4. Version String (0x84) Control Vector....67
          7.5.5. MAC Address Exclusivity (0x85) Control Vector   68
          7.5.6. SAP List Support (0x86) Control Vector..69
          7.5.7. TCP Connections (0x87) Control Vector...71
          7.5.8. NetBIOS Name Exclusivity (0x88) Control Vector  71
          7.5.9. MAC Address List (0x89) Control Vector..72
          7.5.10. NetBIOS Name List (0x8A) Control Vector73
          7.5.11. Vendor Context (0x8B) Control Vector...74
     7.6. Capabilities Exchange Responses................75
8. Pacing/Flow Control...................................78
     8.1. Basic Overview.................................78
     8.2. Frame Format...................................79
     8.3. Granting Permission to Send Data...............81
          8.3.1. Repeat Window Operator..................82
          8.3.2. Increment Window Operator...............82
          8.3.3. Decrement Window Operator...............82
          8.3.4. Reset Window Operator...................82
          8.3.5. Halve Window Operator...................82
     8.4. Acknowledging a Flow Control Operator..........82
          8.4.1. Acknowledging a Reset Window Operator...83
     8.5. Capabilities Exchange Initial Window Size......83
     8.6. Circuit Startup................................83
     8.7. Example Receiving Implementations..............83
          8.7.1. Fixed Pacing Example....................84
               8.7.1.1. Circuit Startup..................84
               8.7.1.2. Check Buffers Available..........84
               8.7.1.3. Buffers Become Available.........84
               8.7.1.4. Repeat Window Operator...........84
               8.7.1.5. Send FCIND( operator)............84
               8.7.1.6. A Frame Arrives from Sender......85
          8.7.2. Adaptive Pacing Example.................85
               8.7.2.1. Circuit Startup..................85
               8.7.2.2. Check Buffers Available ( X).....85
               8.7.2.3. Buffers Become Available.........85
               8.7.2.4. Repeat Window Operator...........86
               8.7.2.5. Increment Window Operator........86
               8.7.2.6. Send FCIND( operator)............86
               8.7.2.7. An FCACK Arrives from Sender.....86
               8.7.2.8. A Non-FCACK Frame Arrives from Sender    87
     8.8 Adaptive Pacing Example Flow Diagrams...........87
          8.8.1 Example Flows from the Above Implementation87
          8.8.2. Example Halve Window Flow...............89
          8.8.3. Example Reset Window Flows..............89
     8.9. Other Considerations...........................91
          8.9.1. Protocol Violations.....................91
Acknowledgments..........................................92
References...............................................92
Security Considerations..................................92
Editor's Address.........................................93

AIW DLSw Related Interest Group           DLSw version 0.16 [Page 4]

RFC XXXX      DLSw: Switch-to-Switch Protocol  December 1994

1. Introduction

   Data Link Switching (DLSw) is a forwarding mechanism for the IBM SNA
   (Systems Network Architecture) and IBM NetBIOS (Network Basic Input
   Output Services) protocols.  This memo documents the Switch-to-Switch
   Protocol (SSP) that is used between Data Link Switches.  This protocol
   does not provide full routing, but instead provides switching at the SNA
   Data Link layer (i.e. layer 2 in the SNA architecture) and encapsulation
   in TCP/IP for transport over the Internet.  This RFC documents the frame
   formats and protocols for multiplexing data between Data Link Switches.
   The initial implementation of SSP uses TCP as the reliable transport
   between Data Link Switches.  However, other transport connections such
   as OSI TP4 could be used in the future.

   A Data Link Switch (abbreviated also as DLSw in this document) can
   support  SNA (Physical Unit (PU) 2, PU 2.1 and PU 4) systems and
   optionally NetBIOS systems attached to IEEE 802.2 compliant Local Area
   Networks, as well as SNA (PU 2 (primary or secondary) and PU2.1) systems
   attached to IBM Synchronous Data Link Control (SDLC) links.  For the
   latter case, the SDLC attached systems are provided with a LAN
   appearance within the Data Link Switch (each SDLC PU is presented to the
   SSP protocol as a unique MAC/SAP address pair).  For the Token-Ring LAN
   attached systems, the Data Link Switch appears as a source-routing
   bridge.  Token-Ring Remote systems that are accessed through the Data
   Link Switch appear as systems attached to an adjacent ring.  This ring
   is a virtual ring that is manifested within each Data Link Switch.

1.1. Backwards Compatibility with RFC 1434

   This document defines significant changes to RFC 1434 and does not state
   details on how to interoperate with RFC-1434 or "enhanced"
   implementations (e.g. those that added enter and exit busy flow
   control).  It is up to the implementer to refer to RFC 1434 and/or any
   other vendor's documentation in order to interoperate with a given
   vendor's implementation, if interoperability with pre-AIW DLSw RIG
   standards is desired.

2. Overview

   Data Link Switching was developed to provide support for SNA and NetBIOS
   in multi-protocol routers.  Since SNA and NetBIOS are basically
   connection oriented protocols, the Data Link Control procedure that they
   use on the LAN is IEEE 802.2 Logical Link Control (LLC) Type 2.  Data
   Link Switching also accommodates SNA protocols over WAN (Wide Area
   Network) links via the SDLC protocol.

   IEEE 802.2 LLC Type 2 was designed with the assumption that the network
   transit delay would be predictable (i.e., a local LAN).  Therefore the
   LLC Type 2 elements of procedure use a fixed timer for detecting lost
   frames.  When bridging is used over wide area lines (especially at lower
   speeds), the network delay is larger and it can vary greatly based upon
   congestion.  When the delay exceeds the time-out value LLC Type 2
   attempts to retransmit.  If the frame is not actually lost, only

AIW DLSw Related Interest Group           DLSw version 0.16 [Page 5]

RFC XXXX      DLSw: Switch-to-Switch Protocol  December 1994

   delayed, it is possible for the LLC Type 2 procedures to become
   confused.  And as a result, the link may be eventually taken down if the
   delay exceeds the T1 timer times N2 retry count.

   Given the use of LLC Type 2 services, Data Link Switching addresses the
   following bridging problems:

            DLC Time-outs
            DLC Acknowledgments over the WAN
            Flow and Congestion Control
            Broadcast Control of Search Packets
            Source-Route Bridging Hop Count Limits

   NetBIOS also makes extensive use of datagram services that use
   connectionless LLC Type 1 service.  In this case, Data Link Switching
   addresses the last two problems in the above list.

   The principal difference between Data Link Switching and bridging is
   that for connection -oriented data DLSw terminates the Data Link Control
   whereas bridging does not. The following figure illustrates this
   difference based upon two end systems operating with LLC Type 2
   services.

   Bridging
   --------         Bridge           Bridge
   +------+         +----+           +----+         +------+
   | End  | +-----+ |    +-----/     |    | +-----+ | End  |
   |System+-+ LAN +-+    |    /------+    +-+ LAN +-+System|
   |      | +-----+ |    |  TCP/IP   |    | +-----+ |      |
   +------+         +----+           +----+         +------+
      Info----------------------------------------------->
          <-----------------------------------------------RR

   Data Link Switching
   -------------------
   +------+         +----+           +----+         +------+
   | End  | +-----+ |    +-----/     |    | +-----+ | End  |
   |System+-+ LAN +-+DLSw|    /------+DLSw+-+ LAN +-+System|
   |      | +-----+ |    |  TCP/IP   |    | +-----+ |      |
   +------+         +----+           +----+         +------+
    Info--------------->   -------------> Info
      <---------------RR                 ------------>
                                         <------------RR

   In traditional bridging, the Data Link Control is end-to-end.  Data Link
   Switching terminates the LLC Type 2 connection at the switch.  This
   means that the LLC Type 2 connections do not cross the wide area
   network.  The DLSw multiplexes LLC connections onto a TCP connection to
   another DLSw.  Therefore, the LLC connections at each end are totally
   independent of each other.  It is the responsibility of the Data Link
   Switch to deliver frames that it has received from a LLC connection to
   the other end.  TCP is used between the Data Link Switches to guarantee
   delivery of frames.

AIW DLSw Related Interest Group           DLSw version 0.16 [Page 6]

RFC XXXX      DLSw: Switch-to-Switch Protocol  December 1994

   As a result of this design, LLC time-outs are limited to the local LAN
   (i.e., they do not traverse the wide area).  Also, the LLC Type 2
   acknowledgments (RR's) do not traverse the WAN, thereby reducing traffic
   across the wide area links.  For SDLC links, polling and poll response
   occurs locally, not over the WAN.  Broadcast of search frames is
   controlled by the Data Link Switches once the location of a target
   system is discovered.  Finally, the switches can now apply back pressure
   to the end systems to provide flow and congestion control.

   Only one copy of an Link Protocol Data Unit (LPDU) is sent between Data
   Link Switches in SSP messages (XIDFRAME and INFOFRAME).  Retries of the
   LPDU are absorbed by Data Link Switch that receives it.  The Data Link
   Switch that transmits the LPDU received in an SSP message to a local
   DLC, will perform retries in a manner appropriate for the local DLC.
   This may involve running a reply timer and maintaining a poll retry
   count.  The length of the timer and the number of retries is an
   implementation choice based on user configuration parameters and the DLC
   type.

   Data Link Switching uses LAN addressing to set up connections between
   SNA systems.  SDLC attached devices are defined with MAC and SAP
   addresses to enable them to communicate with LAN attached devices.  For
   NetBIOS systems, Data Link Switching uses the NetBIOS name to forward
   datagrams and to set up connections for NetBIOS sessions.  For circuit
   establishment, SNA systems send TEST (or in some cases, XID) frames to
   the null (0x00) SAP.  NetBIOS systems have an address resolution
   procedure, based upon the Name Query and Name Recognized frames, that is
   used to establish an end-to-end circuit.

   Since Data Link Switching may be implemented in multi-protocol routers,
   there may be situations where both bridging and switching are enabled.
   SNA frames can be identified by their link SAP.  Typical SAP values for
   SNA are 0x04, 0x08, and 0x0C.  NetBIOS always uses a link SAP value of
   0xF0.

AIW DLSw Related Interest Group           DLSw version 0.16 [Page 7]